Packet forwarding is a process of relaying packets from one communication link to another by nodes in a network. A packet is a formatted unit of data that typically contains control information and payload data. Control information may include: source and destination IP addresses, error detection codes like checksums, sequencing information, etc. Control information is typically found in packet headers and trailers, with payload data in between. Network nodes may take form in one or more routers, one or more bridges, one or more switches, or any other suitable communications processing device.
Segment routing can be used to forward packets. Segment routing utilizes segments, which commonly act as multi-hop or single-hop paths. Segments are assigned segment identifiers (SIDs). Packets addressed with a given SID typically travel along a shortest path, for example, a shortest path to a network node associated with the SID.
In many cases, there are multiple paths between network nodes. As noted, a network node can calculate the shortest path to another network node and forward packets along the shortest path. However, various concerns sometimes cause packets to be forwarded using paths other than the shortest path between network nodes. For example, traffic engineering (TE) can cause packets to be forwarded along a path other than the shortest path. Policy based routing is also used by network nodes to implement policies that selectively cause packets to take specific paths that may differ from a shortest path. Routing mechanisms such as TE and policy based routing can be useful in a number of contexts. However, such mechanisms can also lead to a number of problems. For example, a policy implemented by one network node may conflict with a policy implemented by another network node, causing one or more of the policy implementations to be ineffective. In another example, operations related to TE cause packet looping or other routing problems. What is needed is a way to prevent and/or address such issues.